1. Field of the Invention
The present invention generally relates to methods for transferring data between a source and a plurality of receiving data processing devices. More particularly, the present invention relates to data transfer in a local area network (LAN) between a plurality of data processing devices where the devices use radio signals for delivering data.
2. State of the Art
There are many well-known medium access techniques available today for use in a local area network environment such as ALOHA, slotted ALOHA, Carrier Sense Multiple Access (CSMA), Token Ring, CSMA/CA (Collision Avoidance), CSMA/CD (Collision Detection), BTMA, and CDMA. Many of these techniques were designed to work in a wired network and do not address the unique issues facing a wireless LAN. For example, CSMA techniques, although very effective in a hard-wired LAN, have a weakness in a wireless LAN. The benefit of CSMA is to avoid packet collisions by listening before transmitting, and to defer transmission if a carrier is detected. This works well in a wired network since all nodes are guaranteed to hear each other regardless of location on the wire.
An example of CSMA techniques applied to a hard-wired LAN may be found in U.S. Pat. No. 4,661,902 to Hochsprung et al., assigned to Apple Computer, Inc. The techniques of this patent form the basis of the Appletalk.TM. protocol. An agent wishing to access the communications medium senses the medium to determine if it is in use, waits a predetermined time if the medium is idle, generates a random number and waits an additional waiting time corresponding to the random number before transmitting, and then transmits a request-to-send message. If the agent receives a clear-to-send message in reply within a second predetermined time, then the agent is cleared to transmit data.
In a wireless environment, however, not all nodes are guaranteed to be able to hear all other nodes in the LAN. Such a network is referred to as "semi-broadcast". If all nodes can hear one another the network is considered a "full-broadcast" network. The focus of the present invention deals with a semi-broadcast network in which a problem exists commonly referred to as the hidden terminal problem.
In networks that are semi-broadcast as well as in networks where all nodes may access the medium, there is a phenomenon known as the "middleman" or hidden terminal problem. Hidden terminals are nodes that are logically within the network but which cannot communicate with one or more nodes in the network. This problem is unique to radio networks due to the relatively steep attenuation of received signal strength that occurs as the distance between a transmitting node and a receiving node increases.
FIG. 6--which shows three nodes labeled A, B, and C--illustrates the "middleman" or hidden terminal problem. Assume that node A is in the middle of sending a frame to node B when node C has a message to send to node B. Also assume that node A and node C cannot hear one another, but node B can hear both A and C. Node C listens before transmitting and not hearing node A, determines it is clear to send. The message sent by node C will then collide with the message sent by node A such that neither message may be properly received at node B, and both nodes will have to retransmit their respective messages. A hidden terminal can have an adverse affect upon the capacity of the radio channel, possibly reducing the capacity by as much as two-thirds.
The present invention is furthermore directed toward "peer-to-peer" communication networks in which all nodes, or agents, are able to freely communicate with each other without any node having any advantage over any other. Although medium access control techniques have been developed to address the hidden-terminal problem, such techniques have not allowed peer-to-peer communications. For example, Busy Tone Multiple Access (BTMA) is a medium access control technique designed to address the hidden terminal problem. With BTMA every node sends and receives data from the central node. Whenever the central node is sending or receiving data, it will transmit a busy tone at a different frequency than the data transmission so as not to interfere with the data transmission. Every node in the system is equipped to detect the busy tone and will refrain from sending data when the tone is present. This effectively allows all nodes that are within range of the central node's busy tone to cooperate with all other nodes even if they are hidden terminals. The disadvantage to this technique is that it is centrally managed (not peer-to-peer) and does not provide for multiple central nodes on the same channel.
Another problem that a peer-to-peer network suffers from is that of fair access. Since it is a characteristic of many radio modulation techniques such as FM and spread spectrum to have capture benefits (i.e., if two nodes transmit simultaneously to the same destination, the destination will usually be able to receive the stronger of the two signals), typically the nodes that are physically closer to the destination will have an unfair advantage for accessing the medium.
The present invention solves both the hidden-terminal problem and the problem of fair access in a peer-to-peer semi-broadcast LAN. The invention is particularly applicable to networks of portable computers, such as laptop and palmtop computers. The mobility of the agents in such a network greatly increases the likelihood of hidden terminal problems arising.
In addition, whereas the lengthy radio key-up times of radios create problems with typical CSMA protocols, these problems are avoided in the protocol of the present invention. Although "key-up time" is generally used to refer only to the time required for a radio to switch from the receive mode to the transmit mode, not the time required to switch in the opposite direction from transmit mode to receive mode, in a preferred embodiment of the present invention the two times are substantially equal and will both be referred to by the term "key-up time" throughout the present specification and claims. The term key-up time is therefore used to describe what in actuality might more accurately be referred to as "radio turn-around time", although for simplicity the more familiar term will be used.